1. Field of the Invention
The present invention pertains to data bus systems for transmitting information between a plurality of interconnected and serially arranged terminals, and more particularly it pertains to data buses of the active type wherein each terminal receives data from a data source or from another terminal and transmits or retransmits data to a different terminal in the system.
2. Description of the Prior Art
The data dus concept of placing all data onto a single transmission line, or set of transmission lines and then receiving the data along the line as needed is presently being developed for distributing data throughout complex communication systems and over large distances; for example on board ship. This concept is intended to replace the conventional data distribution systems wherein all receivers and transmitters are directly wired into a central computer or processing unit, or wherein a central switchboard functions to distribute messages from and to the various data sources and data sinks. The conventional data distribution systems require enormous amounts of cabling stretching over long distances wherein such systems become costly to install, difficult to repair, and inflexible to change.
There are two basic types of data buses which are used in large scale data distribution at the present time, namely, passive buses and active buses. The more typical passive bus system employs transmitters, or drivers, and receivers that couple passively to a transmission line. The active data bus, on the other hand, employs active terminals, each of which receives data from one terminal and then retransmits the data or transmits new data to another terminal in the system. Each link between terminals in an active bus system therefore comprises a complete transmission path, whereas in the passive data bus systems the entire length of the transmission line comprises a single transmission path.
Passive bus systems have a number of disadvantages. For example a passive transmission line is terminated in its characteristic inpedance at each end thereof to absorb the data signal and prevent reflections back along the line. The receivers, which tap into the line, must not load the line and will therefore have high impedance inputs. To prevent the transmitters, or drivers, from loading the line, they must be removed from the line when not introducing data, thereby requiring the rapid switching of power sources into and out of the transmission line.
A variation of the foregoing passive system is presently in use wherein all bus drivers and receivers communicate with the main bus line through separate transmission lines called "stubs". Since each stub presents a reactive discontinuity to the main bus line, even when its driver is "off-line", reflections are introduced at each point that a stub joins the main bus line. The stubs are therefore caused to communicate with the bus line through attenuating "lossy couplers" to reduce the reflections to an acceptable level. At low data rates this type of system may perform acceptably, but when the data rate reaches the megabit range or higher, the bit length (defined as the propagating length of a single bit on the data bus line) will oftentimes be less than the bus line length. Consequently, great effort is required to prevent the refections on the line from causing errors in the transmitted data. Furthermore, the large attenuation introduced by the couplers for minimizing the reflections on the line create other problems because of the relatively high driver output level required and the relatively low level of input at the receivers due to the large attenuations. The receiver stubs therefore tend to be susceptible to the pickup of cross-talk and other forms of electromagnetic interference from nearby machinery, electronic equipment, or power cables. The receivers also operate at a very disadvantageous signal to noise ratio at their inputs and therefore require fairly sophisticated hardware in order to extract signals from noise with acceptable accuracy.
Active data bus systems are most commonly arranged in a closed loop or ring structure. A terminal introducing locally-generated data into the system "accesses" the bus by opening the data path at the terminal and transmitting said data to the next terminal in the loop sequence. This terminal, in turn, relays its received data to the next terminal in the sequence, and so on, around the loop. The data is ultimately returned to the terminal of origination where it is removed from the data bus upon encountering the opened data path. Such an active data loop is characterized by the desirable property that all data, regardless of its terminal of origin, is available at every terminal in the system. However, the practical implementation of an active data loop presents several formidable problems.
First, with an active loop structure, means must be provided to coordinate the actions of the various multiplex terminals so that no more than one terminal introduces data into the loop at any given time. If two or more terminals attempt to access the bus simultaneously, the data path will be opened at more than one point and data will be prevented from returning to its terminal of origin. Prior art solutions to this problem have involved either assigning "time slots" to the various terminals or else passing a "token" around the loop to convey permission to access the bus. The first solution requires a "system controller" and results in inefficient utilization of bus time when the data is being generated by users at random times. The second solution, while being more efficient, has heretofore required that appreciable delay be introduced at each terminal to permit the "token" to be recognized, acted upon, and/or modified before being retransmitted around the loop.
A second problem with an active loop is the problem of re-closing the data path at an optimum time after introducing data to the system. If the data path is closed too soon, a portion of the data that has traversed the loop will be retransmitted by the originating terminal and may be ambiguously interpreted by other terminals. If the data path is not closed soon enough, new data being introduced by a second terminal may be inadvertently impeded and thus prevented from completely traversing the loop. Prior art solutions to this problem have generally employed timers to close the data path at a fixed time interval after the data message has been introduced. However, because the total loop delay is a variable quantity that depends upon the current system configuration, such prior art solutions have often further relied on introducing "dead time" before and/or after each data message to insure that the above described difficulties are avoided. Such "dead time" can seriously degrade system efficiency.
A third problem with an active loop is the problem of maintaining high reliability throughout the entire system. Since each terminal serves as a repeater when not introducing original data to the bus, the failure of a single terminal or of a single segment of transmission line between terminals will seriously impede the flow of data and may cause the entire communication system to fail. For data buses employed in certain applications, such a failure could have disastrous consequences. Prior art active data loops have not adequately dealt with this problem.